import gmpy2
import libnum

h1 = 50093225622326613075008292422460877759915494003945998204372854284540003921650010329622942305853671870107902837707316522150339183171683236657152764602752823345579480869622247717503685412525800668636956159010196311753561905001781530766572173966467239057275393133094802152327269628992603820713861541646618420878
h2 = 54138182204090526156540838289344314365508424306000856122684364840371461563286075397011078611194948721744021927729852312251455712359409292965930200330957257663599970647245456427752092694275258542499492434099923282270391030829067271108069209887917855975216507834149958830553194937733689453852939891070345319717
n = 73492923252226921335862976160092694723168343109847578998552424806545676705102485590582109018396196335293301477992207793074795015331695688539627515168053274306696450693022908398895858823024862255510216359826060297365219417049650614014492754852833892116199489925081177024808361975387737938050129688958893302283
c = 55885643492172879338535436362343120600392360651900953481071576052726196711752224950414414825674996193433399601583064081256552081262034631882060652282033635354797266613373428828204534301222627906478077384127219616693941702029118120782543080199216129577621842916739299824303867659291429410555827688257577362409
e = 65537
h3 = pow(h2, 1919, n) * pow(2022, 1919 * 9191, n) - pow(h1, 9191, n) * pow(2021, 1919 * 9191, n)
q = gmpy2.gcd(h3, n)
print(q)
p = n // q
phi = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi)
m = pow(c, d, n)
print(libnum.n2s(int(m)))
